看到題目,知道會得到一個 CSR 檔案,並且提示告訴我們要讀取 CSR 檔案。
hint 1:Download the certificate signing request and try to read it.
那什麼是CSR呢?CSR 全名 CERTIFICATE SIGNING REQUEST,CSR 檔案的主要目的是讓 CA 確認申請者的身份,然後 CA 會生成相應的數位證書,這些證書可以用於加密通信和驗證身份。
這裡的 CA 是是 Certificate Authority,中文為數位憑證認證機構,負責簽發和管理數位證書,用於確保公鑰加密和身份驗證的安全性。
兩著之間的關係簡單來說,就是申請者提交 CSR ,然後 CA 對其進行身份驗證。
詳情可參考:CSR(CERTIFICATE SIGNING REQUEST)是甚麼?、SSL 用的 Key, CRT, CA Bundle 中繼憑證到底是什麼?
下載檔案後,用 ls
查看,我們得到一個名為 readmycert 的 CSR 檔案。
$ ls
README.txt readmycert.csr
打開 CSR 檔案,可以發現都是由 “A-Z , a-z, 0-9, =, +, / ” 組成 ,於是我們猜測這個檔案是以 base64 編碼而成。
$ cat readmycert.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICpzCCAY8CAQAwPDEmMCQGA1UEAwwdcGljb0NURntyZWFkX215Y2VydF81YWVi
MGQ0Zn0xEjAQBgNVBCkMCWN0ZlBsYXllcjCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMCkf11rmV8rgqPvC2ZiPA6W+5RfOTwU6u3WpGvLA+2YFzocBPut
aATTxTPB+uaN2ZN3Z5J2CTFGmPzI4sUQfSqhZGuAqbfMyDDR8pRswmIYVJ6s0Apc
Toi7H8m3IShSbeE0pZUSIJpbK1a7V6lJqgwFMDI1qrgNhGgZaMA/l+d2J0vC3EYd
AijwSs8APcp6woWbFGYwdw5KaBsjn23oVz2G4h3/TmdB5g5e6Oq+kgi38NEpRDS0
ylXo9mUko3FqS4I6y9gOtDEI4uZaCJZuXHDmBpqZ04MfXbIVlHjF9NMOjDvXLonN
650oaANBm4bhBlgid0Fx48Z36tbtAVivZEcCAwEAAaAmMCQGCSqGSIb3DQEJDjEX
MBUwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHZx6h9r
G/SE7RCoX6ndk5BOJprRiHpxOqPLAWcDyKHfStln0/HcQZzIrRVRsmoHiOmch+md
PBA1b+M5aj+3BWtPR9jOY4vht+ZmHAKa0WfQxwb2dBxsRPKTTDea0wN2u8BHLlSM
PbWPNuz+TKySL41xfwFuM4VN/ywn58GTvdb7HXgwNZCGgo2N1WhRq/dBMiagXMah
yb6gX4erugCu61T5tyD80hgsNBjaqyIdy/whRfC/Pmn3QHmdkqB5ZCPezwb2OLm4
5RDGv3WOB5q0BofoUGhVq757QE8qhL3oTvV2WlLoi3YWaZkJMCeR3vnH92cKC1Ov
FxdQuLOH8GMvl7U=
-----END CERTIFICATE REQUEST-----
將檔案 以 base64 decode 後,得到 flag。其中 sed -n 2,16p
的意思是提取第 2 到第 16 行的内容。
$ cat readmycert.csr | sed -n 2,16p
MIICpzCCAY8CAQAwPDEmMCQGA1UEAwwdcGljb0NURntyZWFkX215Y2VydF81YWVi
MGQ0Zn0xEjAQBgNVBCkMCWN0ZlBsYXllcjCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAMCkf11rmV8rgqPvC2ZiPA6W+5RfOTwU6u3WpGvLA+2YFzocBPut
aATTxTPB+uaN2ZN3Z5J2CTFGmPzI4sUQfSqhZGuAqbfMyDDR8pRswmIYVJ6s0Apc
Toi7H8m3IShSbeE0pZUSIJpbK1a7V6lJqgwFMDI1qrgNhGgZaMA/l+d2J0vC3EYd
AijwSs8APcp6woWbFGYwdw5KaBsjn23oVz2G4h3/TmdB5g5e6Oq+kgi38NEpRDS0
ylXo9mUko3FqS4I6y9gOtDEI4uZaCJZuXHDmBpqZ04MfXbIVlHjF9NMOjDvXLonN
650oaANBm4bhBlgid0Fx48Z36tbtAVivZEcCAwEAAaAmMCQGCSqGSIb3DQEJDjEX
MBUwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHZx6h9r
G/SE7RCoX6ndk5BOJprRiHpxOqPLAWcDyKHfStln0/HcQZzIrRVRsmoHiOmch+md
PBA1b+M5aj+3BWtPR9jOY4vht+ZmHAKa0WfQxwb2dBxsRPKTTDea0wN2u8BHLlSM
PbWPNuz+TKySL41xfwFuM4VN/ywn58GTvdb7HXgwNZCGgo2N1WhRq/dBMiagXMah
yb6gX4erugCu61T5tyD80hgsNBjaqyIdy/whRfC/Pmn3QHmdkqB5ZCPezwb2OLm4
5RDGv3WOB5q0BofoUGhVq757QE8qhL3oTvV2WlLoi3YWaZkJMCeR3vnH92cKC1Ov
FxdQuLOH8GMvl7U=
$ cat readmycert.csr | sed -n 2,16p | base64 -d
000<1&0$U
picoCTF{read_mycert_5aeb0d4f}10U)
0 *H ctfPlayer0"0
]k_+
fb<_9<֤k:h3ٓwgv 1F}*dk0lbT
\Nɷ!(Rm4 [+VWI
hh?v'KF(J=z 025
f0wJhW=N100U%D4Ue$qjK:n\pӃ]x;.(hAX"wAqwXdG&0$ *H
0
+0 *H
vqkN&шzq:gȡJgAȭQj震<5o9j?kOGcfgtlDL7vG.T=6L/qn3M,'x05hQA2&\ơɾ_T ,4ګ"!E>i@yyd#8ƿuPhU{@O*NvZRvi 0'g
小結:
了解 CSR 和 CA,並且學會使用 sed
指令。